<?php
	include("inc_resize.php");
	
	// 注意：使用组件上传，不可以使用 $_FILES["Filedata"]["type"] 来判断文件类型
	mb_http_input("utf-8");
	mb_http_output("utf-8");
	$type=filekzm($_FILES["Filedata"]["name"]);
	
	$pic_group = trim($_GET['pg']);
	if (!in_array($pic_group, array('vUser', 'shop'))) {
		$pic_group = 'vUser';
	}
	
	// 判断文件类型和大小
	if ((($type == ".gif")
	|| ($type == ".png")
	|| ($type == ".jpeg")
	|| ($type == ".jpg")
	|| ($type == ".bmp"))
	&& ($_FILES["Filedata"]["size"] < 600000))  // 单个文件大小
	{
		if ($_FILES["Filedata"]["error"] > 0)
		{
			echo "返回错误: " . $_FILES["Filedata"]["error"] . "<br />";
		}
		else 
		{
			// 移动文件到指定目录
			$getimg =  getimgname();
			$att = "_small";
			$filename = $getimg.$type; // 上传后的文件名
			$filename2 = $getimg.$att.$type; //   处理后的文件名
			$filepath = "../../jiaju369img/user/"; // 上传后的路径
			$filepath = "../../jiaju369img/{$pic_group}/"; // 上传后的路径
			
			//add by laurence at 2011-03-12
			$picpath = get_picpath($pic_group);//获取文件存放目录，3级结构，每个目录1000个文件
			//add end
			
			// 移动文件到指定目录
			$outfilename = $filepath.$picpath.$filename;
			move_uploaded_file($_FILES["Filedata"]["tmp_name"],$outfilename);  
			$picname = new resizeimage($outfilename,"720","720",$att);
			// 如果存在小图了，就删出大图
			$pic = $picname->dst_img();
			if (file_exists($pic))
			{
				unlink($outfilename);
			}
	
			
			echo "|".$picpath.$filename2;
		}
	}
	else
	{
		  echo "上传失败，请检查文件类型和文件大小是否符合标准<br />文件类型：".$type.'<br />文件大小:'.($_FILES["Filedata"]["size"] / 1024) . " Kb";
	}

	// ------------------------------------------------------------------------
	/*
		* 获取文件扩展名
	*/
	function filekzm($a)
	{
		$c=strrchr($a,'.');
		if($c)
		{
			return $c;
		}
		else
		{
			return '';
		}
	}

	// ------------------------------------------------------------------------
	/*
		* 生成唯一的文件名
	*/
	function getimgname()
	{
		$order_id = date("YmdHis").rand(1000000,9999999);
		return 'img'.$order_id;
	}
	
	// -------------------------------------------------------------------------
	/**
	 * 获取文件存放路径
	 *
	 * @see		get_picpath()
	 * @author	Laurence.xu <haohailuo@163.com>
	 * @version	Sun Mar 13 09:45:53 CST 2011
	 * @return	<string> $path 路径
	*/
	function get_picpath($pic_group) {
		$path_info_file = "./path_info_{$pic_group}.data";
		
		$path_1 = $path_2 = $path_3 = '000';
		$count = 0;
		if (file_exists($path_info_file)) {
			$path_info = file($path_info_file);
			$path_info = array_map('trim', $path_info);
			list($path_1, $path_2, $path_3, $count) = $path_info;
		}
		
		//基本路径
		$basepath = "../../jiaju369img/{$pic_group}/"; // 上传后的路径
		
		if (!is_dir($basepath)) {
			@mkdir($basepath, 0777);
		}
		
		$count++;
		
		//逐级判断是否需要创建文件夹
		//第三级目录
		if ($count >= 999) {
			$count = 0;
			$path_3 = sprintf("%03d", intval($path_3)+1);
		}
		
		//第二级目录
		if (intval($path_3) >= 999) {
			$path_3 = '000';
			$path_2 = sprintf("%03d", intval($path_2)+1);
		}
		
		//第一级目录
		if (intval($path_2) >= 999) {
			$path_3 = '000';
			$path_2 = '000';
			$path_1 = sprintf("%03d", intval($path_1)+1);
		}
		
		$path = $basepath.$path_1;
		if (!is_dir($path)) {
			@mkdir($path, 0777);
		}
		
		$path .= '/'.$path_2;
		if (!is_dir($path)) {
			@mkdir($path, 0777);
		}
		
		$path .= '/'.$path_3;
		if (!is_dir($path)) {
			@mkdir($path, 0777);
		}
		
		//记录当前路径信息
		$path_info_str = "{$path_1}\n{$path_2}\n{$path_3}\n{$count}";
		file_put_contents($path_info_file, $path_info_str);
		
		return "{$path_1}/{$path_2}/{$path_3}/";
	}
?>

